package com.gadgets.cm01.user.service;

import com.gadgets.cm01.user.dto.UserChangePwdDTO;
import com.gadgets.cm01.user.dto.UserInfoOperationDTO;
import com.gadgets.cm01.user.dto.UserInfoQueryDTO;
import com.gadgets.cm01.user.pojo.User;
import com.gadgets.framework.common.dto.Pagination;
import com.gadgets.framework.common.exception.GadgetsException;

import java.util.List;

/**
 * @author UncleXiu
 * @version V1.0.0
 * @data 2020-09-17
 *
 */
public interface IUserOperationService {

    /**
     * 新增用户信息
     * @param user                  用户信息
     * @throws GadgetsException     异常信息
     */
    public void addUserInfo(User user) throws GadgetsException;

    /**
     * 更新用户密码信息
     * @param userChangePwdDTO      更新信息
     * @throws GadgetsException     异常信息
     */
    public int updateUserPwdInfo(UserChangePwdDTO userChangePwdDTO) throws GadgetsException;

    /**
     * 更新用户状态信息
     * @param operationDTO          操作信息
     * @throws GadgetsException     异常信息
     */
    public int updateUserStatusInfo(UserInfoOperationDTO operationDTO) throws GadgetsException;

    /**
     * 分页条件查询用户信息
     * @param queryDTO              查询条件
     * @param pagination            分页条件
     * @return                      查询结果
     * @throws GadgetsException     异常信息
     */
    public List<User> queryUserInfoByCondition(UserInfoQueryDTO queryDTO, Pagination pagination) throws GadgetsException;

}
